Skip to content

V0.11.1/regression fix - #45

Merged
gimlichael merged 16 commits into
mainfrom
v0.11.1/regression-fix
Sep 29, 2026
Merged

gimlichael merged 16 commits into
mainfrom
v0.11.1/regression-fix

Conversation

@gimlichael

Copy link
Copy Markdown
Member

This pull request strengthens the git-remote-release skill with comprehensive release-note format validation. Introduces Python validation that enforces the structured opening contract, curated bullet format, and em dash prohibition. Adds regression tests and expands documentation to ensure consistent high-quality release notes.

Format validation:

  • Enforces opening with 'This release ' to establish structured contract
  • Validates release-highlight bullets with bold lead-ins and natural prose
  • Rejects em dashes and malformed prose paragraphs as format violations
  • Comprehensive validation failure messages guide users to correct format

Release documentation:

  • Updates CHANGELOG.md with release notes for the 0.11.1 patch version
  • Documents strengthened validation capabilities and format requirements
  • Includes structured opening and curated highlight bullets

Skill specification:

  • Restructures SKILL.md with dedicated Non-Negotiable Rules section
  • Clarifies structured opening format and curated release-highlight pattern
  • Documents em dash prohibition as explicit format constraint
  • Enhances Data Collection Strategy with bundled collector and validation workflow

Skill documentation:

  • Updates README.md to emphasize structured release-note format requirements
  • Highlights 'This release ...' opening and dash-bullet format in feature list
  • Clarifies that draft verification rejects format violations and malformed openings

Test coverage:

  • Expands test suite with regression detection for format violations
  • Covers bold-paragraph rejection, bullet structure validation, and contributor attribution
  • Validates comma/period separation within curated bullets
  • Ensures collector and validation run deterministically across all format requirements

Introduces a patch release documenting strengthened git-remote-release capabilities: structured release-note opening format, curated release-highlight bullets, em dash prohibition, and deterministic verification. Enhanced Python collector validation gates check format compliance and reject malformed openings, missing bullets, unsupported punctuation patterns, and incomplete contributor attribution.
Reorganizes SKILL.md with a dedicated Non-Negotiable Rules section listing the structured opening contract, curated release-highlight bullets, and em dash prohibition. Enhances the Output Format section documenting the opening paragraph and bullet structure requirements. Adds a dedicated Em Dash Prohibition section clarifying the format constraint. Expands Data Collection Strategy with guidance on bundled collector, GitHub MCP tools, and gh CLI. Updates evals.json with enhanced expectations for the opening paragraph and bullet structure, and adds eval case #10 testing the rejection of bold-leading prose paragraphs and format violations.
Adds verify_summary() function to collect-release-evidence.py that enforces the structured release-note format contract: requires opening with 'This release ', rejects bold-leading prose paragraphs, validates release-highlight bullets with natural prose following bold lead-ins, enforces comma separation between non-final bullets and periods on final bullets, and prohibits em dashes. Expands test-release-evidence.py with comprehensive coverage including test_summary_structure_rejects_bold_paragraph_regression() for format regression detection and test_summary_structure_requires_bullets_and_natural_bold_leads() for bullet structure validation. Updates draft() helper to reflect required format structure.
Updates the git-remote-release skill description in the Available Skills table to emphasize the structured release-note format: opening summary line begins with 'This release ', followed by curated dash bullets with bold lead-ins and natural prose, with optional GitHub alert blocks and verified Sources entries. Updates the skill's feature list to highlight the release-story structure requiring the 'This release ...' opening and dash-bullet format, and strengthens the strict format constraint to clarify em dash prohibition in authored release-note prose. Clarifies that draft verification rejects malformed openings, missing highlight bullets, format violations, and incomplete contributor attribution.
@gimlichael gimlichael self-assigned this Sep 25, 2026
@greptile-apps

greptile-apps Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 4/5

[Medium risk] Updates skill documentation, test fixtures, and validation logic.

The PR is not ready to merge until the new test fixture satisfies the repository’s test-class requirement; the remaining verifier and diagnostic concerns are non-blocking.

Fix All in CodexFindings

  1. P2 Test class omits required base ▶
  2. P2 Empty opening passes verification ▶
  3. P2 Malformed configuration gets generic error ▶
  4. P2 All images bypass opening limit ▶
Fix with agent prompt
### Issue 1
skills/dotnet-remote-testing/evals/files/mtp-xunit/test/Mtp.Tests/PlatformTests.cs:6
The new `PlatformTests` fixture has no base class. The repository requires test classes to inherit from the appropriate `Codebelt.Extensions.Xunit` base class. Please satisfy that requirement before merging.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

### Issue 2
skills/git-remote-release/scripts/collect-release-evidence.py:undefined-65
An opening line containing only `This release ` passes the prefix check when valid highlight bullets follow it. The verifier can therefore certify notes with no release-level summary, despite the required opening-paragraph format.

### Issue 3
skills/dotnet-remote-testing/scripts/remote-test.cs:undefined-1372
If `global.json` contains malformed JSON, this new read throws before the container runs. Both `plan` and `run` then report an “Unhandled error” as a result-processing failure instead of letting the SDK report the configuration problem, making the cause harder to identify.

### Issue 4
skills/dotnet-remote-testing/scripts/validate-skill.ps1:undefined-72
The new regex removes every Markdown image line before measuring how far `## Do this now` appears into the skill body, not just the decorative hero. A substantial diagram or screenshot could therefore come before the imperative without failing the guard, weakening the check that the default action is read first.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

The PR adds release-note structure verification, MTP-aware remote testing, clarified same-request PR approval behavior, regression fixtures, and updated release documentation.

  • Release-note verification checks opening text, highlight bullets, alerts, and authored-prose em dashes while preserving source titles.
  • Remote testing selects MTP from global.json and checks test-reporting capabilities and results.
  • The 0.11.1 changelog now covers the broader workflow changes.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A["Read source global.json"] --> B{"MTP runner selected?"}
  B -- Yes --> C["Build and probe module capabilities"]
  C --> D["Run MTP tests and collect TRX"]
  B -- No --> E["Run VSTest and collect TRX"]
  D --> F["Classify test results"]
  E --> F
Loading

Reviews (7) · Last reviewed commit: "🔧 update v0.11.1 changelog with regress..."

Comment thread skills/git-remote-release/scripts/collect-release-evidence.py Outdated
Comment thread skills/git-remote-release/scripts/collect-release-evidence.py Outdated
Comment thread skills/git-remote-release/scripts/collect-release-evidence.py Outdated
Comment thread skills/git-remote-release/scripts/test-release-evidence.py
Tighten validation rules to reject punctuation-only bullets, enforce em-dash prohibition in authored prose while preserving source titles, restrict GitHub alert blocks to supported markers only, and add comprehensive test coverage for these stricter requirements. Scope em-dash check to authored lines only, allowing exact source titles to preserve their original formatting.
Clarify release-note validation rules in README skill descriptions: em-dash prohibition applies to authored prose only, GitHub alert blocks must use only supported markers, and release-highlight bullets require explanatory prose after bold lead-ins. Align documentation with implementation improvements.
Comment thread skills/git-remote-release/scripts/collect-release-evidence.py
Comment thread skills/git-remote-release/scripts/collect-release-evidence.py Outdated
Comment thread skills/git-remote-release/scripts/collect-release-evidence.py
Update repository policy (AGENTS.md) and user-facing documentation (README.md) to clarify that same-request yolo/auto in git-remote-pr skips the approval wait but still shows the preview as status only.
Update skill instructions (SKILL.md) and corresponding eval cases (evals.json) to reflect clarified yolo/auto behavior: preview is shown as status only, no approval phrase is required or awaited.

opening_index = content_positions[0]
opening = section[opening_index]
if not opening.startswith("This release "):

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Empty opening passes verification An opening line containing only This release passes the prefix check when valid highlight bullets follow it. The verifier can therefore certify notes with no release-level summary, despite the required opening-paragraph format.

Prompt To Fix With AI
This is a comment left during a code review.
Path: skills/git-remote-release/scripts/collect-release-evidence.py
Line: 65

Comment:
**Empty opening passes verification** An opening line containing only `This release ` passes the prefix check when valid highlight bullets follow it. The verifier can therefore certify notes with no release-level summary, despite the required opening-paragraph format.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex

return false;
}

using var json = JsonDocument.Parse(File.ReadAllText(path), new JsonDocumentOptions

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Malformed configuration gets generic error If global.json contains malformed JSON, this new read throws before the container runs. Both plan and run then report an “Unhandled error” as a result-processing failure instead of letting the SDK report the configuration problem, making the cause harder to identify.

Prompt To Fix With AI
This is a comment left during a code review.
Path: skills/dotnet-remote-testing/scripts/remote-test.cs
Line: 1372

Comment:
**Malformed configuration gets generic error** If `global.json` contains malformed JSON, this new read throws before the container runs. Both `plan` and `run` then report an “Unhandled error” as a result-processing failure instead of letting the SDK report the configuration problem, making the cause harder to identify.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex

Comment thread CHANGELOG.md
}
if ($doThisNow -gt 100) {
# A decorative hero between the title and the imperative is not an intake or workflow section.
$opening = [regex]::Replace($body.Substring(0, $doThisNow), '(?m)^!\[[^\r\n]*\]\([^\r\n]*\)\r?\n', '')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 All images bypass opening limit The new regex removes every Markdown image line before measuring how far ## Do this now appears into the skill body, not just the decorative hero. A substantial diagram or screenshot could therefore come before the imperative without failing the guard, weakening the check that the default action is read first.

Prompt To Fix With AI
This is a comment left during a code review.
Path: skills/dotnet-remote-testing/scripts/validate-skill.ps1
Line: 72

Comment:
**All images bypass opening limit** The new regex removes every Markdown image line before measuring how far `## Do this now` appears into the skill body, not just the decorative hero. A substantial diagram or screenshot could therefore come before the imperative without failing the guard, weakening the check that the default action is read first.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Fix in Codex


namespace Mtp.Tests;

public class PlatformTests

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Test class omits required base The new PlatformTests fixture has no base class. The repository requires test classes to inherit from the appropriate Codebelt.Extensions.Xunit base class. Please satisfy that requirement before merging.

Context Used: skills/dotnet-new-lib-slnx/assets/shared/AGENTS.md (source)

Prompt To Fix With AI
This is a comment left during a code review.
Path: skills/dotnet-remote-testing/evals/files/mtp-xunit/test/Mtp.Tests/PlatformTests.cs
Line: 6

Comment:
**Test class omits required base** The new `PlatformTests` fixture has no base class. The repository requires test classes to inherit from the appropriate `Codebelt.Extensions.Xunit` base class. Please satisfy that requirement before merging.

**Context Used:** skills/dotnet-new-lib-slnx/assets/shared/AGENTS.md ([source](https://github.com/codebeltnet/agentic/blob/main/skills/dotnet-new-lib-slnx/assets/shared/AGENTS.md))

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex

@gimlichael
gimlichael merged commit 6d61ece into main Sep 29, 2026
14 checks passed
@gimlichael
gimlichael deleted the v0.11.1/regression-fix branch September 29, 2026 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants